package org.byqh.dqeai.entity.proxy;

import com.easy.query.core.expression.parser.core.available.TableAvailable;
import com.easy.query.core.proxy.AbstractProxyEntity;
import com.easy.query.core.proxy.SQLColumn;
import com.easy.query.core.proxy.SQLSelectAsExpression;
import com.easy.query.core.proxy.fetcher.AbstractFetcher;
import com.easy.query.core.proxy.core.EntitySQLContext;
import org.byqh.dqeai.entity.SysAccessLog;
import com.easy.query.core.proxy.columns.types.SQLStringTypeColumn;
import com.easy.query.core.proxy.columns.types.SQLLocalDateTimeTypeColumn;

/**
 * this file automatically generated by easy-query, don't modify it
 * 当前文件是easy-query自动生成的请不要随意修改
 * 如果出现属性冲突请使用@ProxyProperty进行重命名
 *
 * @author easy-query
 */
public class SysAccessLogProxy extends AbstractProxyEntity<SysAccessLogProxy, SysAccessLog> {

    private static final Class<SysAccessLog> entityClass = SysAccessLog.class;

    public static final SysAccessLogProxy TABLE = createTable().createEmpty();

    public static SysAccessLogProxy createTable() {
        return new SysAccessLogProxy();
    }

    public SysAccessLogProxy() {
    }

    /**
     * 日志ID
     * {@link SysAccessLog#getLogId}
     */
    public SQLStringTypeColumn<SysAccessLogProxy> logId() {
        return getStringTypeColumn("logId");
    }

    /**
     * 应用ID
     * {@link SysAccessLog#getAppId}
     */
    public SQLStringTypeColumn<SysAccessLogProxy> appId() {
        return getStringTypeColumn("appId");
    }

    /**
     * 用户帐号
     * {@link SysAccessLog#getUserCode}
     */
    public SQLStringTypeColumn<SysAccessLogProxy> userCode() {
        return getStringTypeColumn("userCode");
    }

    /**
     * 用户IP地址
     * {@link SysAccessLog#getUserIp}
     */
    public SQLStringTypeColumn<SysAccessLogProxy> userIp() {
        return getStringTypeColumn("userIp");
    }

    /**
     * 登录时间,默认系统时间
     * {@link SysAccessLog#getLoginTime}
     */
    public SQLLocalDateTimeTypeColumn<SysAccessLogProxy> loginTime() {
        return getLocalDateTimeTypeColumn("loginTime");
    }

    /**
     * 0登录失败;1登录成功
     * {@link SysAccessLog#getLoginStatus}
     */
    public SQLStringTypeColumn<SysAccessLogProxy> loginStatus() {
        return getStringTypeColumn("loginStatus");
    }

    /**
     * 记录登录失败的原因
     * {@link SysAccessLog#getLoginDes}
     */
    public SQLStringTypeColumn<SysAccessLogProxy> loginDes() {
        return getStringTypeColumn("loginDes");
    }

    /**
     * 退出系统时间
     * {@link SysAccessLog#getLogoutTime}
     */
    public SQLLocalDateTimeTypeColumn<SysAccessLogProxy> logoutTime() {
        return getLocalDateTimeTypeColumn("logoutTime");
    }

    /**
     * 备注信息
     * {@link SysAccessLog#getRemarks}
     */
    public SQLStringTypeColumn<SysAccessLogProxy> remarks() {
        return getStringTypeColumn("remarks");
    }

    /**
     * {@link SysAccessLog#getOsVersion}
     */
    public SQLStringTypeColumn<SysAccessLogProxy> osVersion() {
        return getStringTypeColumn("osVersion");
    }

    /**
     * {@link SysAccessLog#getOsArch}
     */
    public SQLStringTypeColumn<SysAccessLogProxy> osArch() {
        return getStringTypeColumn("osArch");
    }

    /**
     * {@link SysAccessLog#getUserName}
     */
    public SQLStringTypeColumn<SysAccessLogProxy> userName() {
        return getStringTypeColumn("userName");
    }

    /**
     * {@link SysAccessLog#getUserDept}
     */
    public SQLStringTypeColumn<SysAccessLogProxy> userDept() {
        return getStringTypeColumn("userDept");
    }

    @Override
    public Class<SysAccessLog> getEntityClass() {
        return entityClass;
    }

    /**
     * 数据库列的简单获取
     *
     * @return
     */
    public SysAccessLogProxyFetcher FETCHER = new SysAccessLogProxyFetcher(this, null, SQLSelectAsExpression.empty);

    public static class SysAccessLogProxyFetcher extends AbstractFetcher<SysAccessLogProxy, SysAccessLog, SysAccessLogProxyFetcher> {

        public SysAccessLogProxyFetcher(SysAccessLogProxy proxy, SysAccessLogProxyFetcher prev, SQLSelectAsExpression sqlSelectAsExpression) {
            super(proxy, prev, sqlSelectAsExpression);
        }

        /**
         * 日志ID
         * {@link SysAccessLog#getLogId}
         */
        public SysAccessLogProxyFetcher logId() {
            return add(getProxy().logId());
        }

        /**
         * 应用ID
         * {@link SysAccessLog#getAppId}
         */
        public SysAccessLogProxyFetcher appId() {
            return add(getProxy().appId());
        }

        /**
         * 用户帐号
         * {@link SysAccessLog#getUserCode}
         */
        public SysAccessLogProxyFetcher userCode() {
            return add(getProxy().userCode());
        }

        /**
         * 用户IP地址
         * {@link SysAccessLog#getUserIp}
         */
        public SysAccessLogProxyFetcher userIp() {
            return add(getProxy().userIp());
        }

        /**
         * 登录时间,默认系统时间
         * {@link SysAccessLog#getLoginTime}
         */
        public SysAccessLogProxyFetcher loginTime() {
            return add(getProxy().loginTime());
        }

        /**
         * 0登录失败;1登录成功
         * {@link SysAccessLog#getLoginStatus}
         */
        public SysAccessLogProxyFetcher loginStatus() {
            return add(getProxy().loginStatus());
        }

        /**
         * 记录登录失败的原因
         * {@link SysAccessLog#getLoginDes}
         */
        public SysAccessLogProxyFetcher loginDes() {
            return add(getProxy().loginDes());
        }

        /**
         * 退出系统时间
         * {@link SysAccessLog#getLogoutTime}
         */
        public SysAccessLogProxyFetcher logoutTime() {
            return add(getProxy().logoutTime());
        }

        /**
         * 备注信息
         * {@link SysAccessLog#getRemarks}
         */
        public SysAccessLogProxyFetcher remarks() {
            return add(getProxy().remarks());
        }

        /**
         * {@link SysAccessLog#getOsVersion}
         */
        public SysAccessLogProxyFetcher osVersion() {
            return add(getProxy().osVersion());
        }

        /**
         * {@link SysAccessLog#getOsArch}
         */
        public SysAccessLogProxyFetcher osArch() {
            return add(getProxy().osArch());
        }

        /**
         * {@link SysAccessLog#getUserName}
         */
        public SysAccessLogProxyFetcher userName() {
            return add(getProxy().userName());
        }

        /**
         * {@link SysAccessLog#getUserDept}
         */
        public SysAccessLogProxyFetcher userDept() {
            return add(getProxy().userDept());
        }

        @Override
        protected SysAccessLogProxyFetcher createFetcher(SysAccessLogProxy cp, AbstractFetcher<SysAccessLogProxy, SysAccessLog, SysAccessLogProxyFetcher> prev, SQLSelectAsExpression sqlSelectExpression) {
            return new SysAccessLogProxyFetcher(cp, this, sqlSelectExpression);
        }
    }
}
